package cliente.servico;

import java.awt.Container;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;


@SuppressWarnings("serial")
public class InserirServico extends AbstractAction implements ActionListener{

	private Action inserirServico;
	private JFrame tfInserirServico;
	private JLabel descricao;
	private JTextField descticaoText;
	private JLabel preco;
	private JFormattedTextField precoText;
	private JButton inserir;
	private JButton fechar;
	
	public InserirServico() {
		// Nome da ação
		super(" Inserir Serviços");
		this.putValue(Action.SHORT_DESCRIPTION, "Insere um novo servico no sistema");
		inserirServico = new AcoesInserirServico(this);
	}
	
	// Define o que será executado quando a ação for acionada
	public void actionPerformed(ActionEvent ev){
		tfInserirServico = new JFrame("Inserir Servico");
		tfInserirServico.setDefaultCloseOperation (JFrame.DISPOSE_ON_CLOSE);
		
		Container interno = tfInserirServico.getContentPane();
		GridBagConstraints cons = new GridBagConstraints();
		GridBagLayout layout = new GridBagLayout();
		interno.setLayout(layout);
		
		cons.insets = new Insets(2,2,2,2);
		
		// Componentes da tela
		setDescricao(new JLabel("Descricao"));
		cons.weightx = 0.25; 
		cons.gridx = 0;
		cons.gridy = 0;
		cons.fill = GridBagConstraints.NONE;
		interno.add(descricao,cons);
		
		setDescticaoText(new JTextField());
		cons.weightx = 0.75;
		cons.gridx = 1;
		cons.gridy = 0;
		cons.fill = GridBagConstraints.HORIZONTAL;
		interno.add(descticaoText,cons);
		
		setPreco(new JLabel("Preço"));
		cons.weightx = 0.25;
		cons.gridx = 0;
		cons.gridy = 1;
		cons.fill = GridBagConstraints.NONE;
		interno.add(preco, cons);
		
		setPrecoText(new JFormattedTextField());
		cons.weightx = 0.25;
		cons.gridx = 1;
		cons.gridy = 1;
		cons.fill = GridBagConstraints.HORIZONTAL;
		interno.add(precoText, cons);
		// Formata o valor para real
		//getPrecoText().setFormatterFactory(formater.MaskFormater.maskMoeda());
		
		
		setInserir(new JButton("Inserir"));
		cons.weightx = 0.5;
		cons.gridx = 0;
		cons.gridy = 2;
		cons.fill = GridBagConstraints.NONE ;
		interno.add(inserir, cons);
		inserir.setActionCommand("inserir");
		inserir.addActionListener(inserirServico);
		
		setFechar(new JButton("Fechar"));
		cons.weightx = 0.5;
		cons.gridx = 1;
		cons.gridy = 2;
		interno.add(fechar, cons);
		fechar.setActionCommand("fecha");
		fechar.addActionListener(inserirServico);
		
		tfInserirServico.setSize(300,200);
		tfInserirServico.setVisible(true);
	}

	public Action getInserirServico() {
		return inserirServico;
	}

	public void setInserirServico(Action inserirServico) {
		this.inserirServico = inserirServico;
	}

	public JFrame getTfInserirServico() {
		return tfInserirServico;
	}

	public void setTfInserirServico(JFrame tfInserirServico) {
		this.tfInserirServico = tfInserirServico;
	}

	public JLabel getDescricao() {
		return descricao;
	}

	public void setDescricao(JLabel descricao) {
		this.descricao = descricao;
	}

	public JTextField getDescticaoText() {
		return descticaoText;
	}

	public void setDescticaoText(JTextField descticaoText) {
		this.descticaoText = descticaoText;
	}

	public JLabel getPreco() {
		return preco;
	}

	public void setPreco(JLabel preco) {
		this.preco = preco;
	}

	public JFormattedTextField getPrecoText() {
		return precoText;
	}

	public void setPrecoText(JFormattedTextField precoText) {
		this.precoText = precoText;
	}

	public JButton getInserir() {
		return inserir;
	}

	public void setInserir(JButton inserir) {
		this.inserir = inserir;
	}

	public JButton getFechar() {
		return fechar;
	}

	public void setFechar(JButton fechar) {
		this.fechar = fechar;
	}
}
